#include "buildsettings.h"
#include "list.h"
#include "hashtable.h"

#ifndef _PERFECTHASHTABLE_
#define _PERFECTHASHTABLE_

typedef struct structPerfectHashTable PerfectHashTable;

//! A hash table with less conflicts but requiring more space
struct structPerfectHashTable
{
	HashTable ht;

	int (*Set)(PerfectHashTable *ht, char *key, void *value);
	void *(*Get)(PerfectHashTable *table, char *key);
};

PerfectHashTable new_PerfectHashTable(int size);
void destroy_PerfectHashTable(PerfectHashTable *ht);

#endif
